登录 白背景

2020-05-22 18:32:36

class Solution {
    /**
     * @param Integer[] $nums
     * @return Integer[][]
     */
    function permuteUnique($nums) {
        $numsLen = count($nums);
        //回溯
        if(1 === $numsLen) {
            return array($nums);
        }
        $arr = array();
        $uniqueArr = array();
        //遍历当前所有数字,轮流当头牌
        foreach($nums as $itemNum){
            if(in_array($itemNum, $uniqueArr)){
                continue;
            }else{
                $uniqueArr[] = $itemNum;
            }
            $itemArr = $nums;
            //删除当前数字
            unset($itemArr[array_search($itemNum, $itemArr)]);
            //递归
            foreach($this->permuteUnique($itemArr) as $resArr) {
                array_unshift($resArr, $itemNum);
                $arr[] = $resArr;
            }
        }
        return $arr;
    }
}